package com.atguigu.day05.HomeWork;

import java.util.Scanner;

/**
 * @version 1.0
 * @Author 马冰
 * @Date 2024/11/4 19:41
 * @注释 数组版打鱼还是筛网
 */
public class HomeWork6 {
    public static void main(String[] args) {
        int[] commonYearDays = {365,31,28,31,30,31,30,31,31,30,31};
        int[] leapYearDays = {366,31,29,31,30,31,30,31,30,31};
        //键盘输入年月日,并对其格式进行判断
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = sc.nextInt();
        //判断年份格式,年份不能小于1990
        if(year < 1990){
            System.out.println("年份输入错误");
            return;
        }
        System.out.println("请输入月份:");
        int month = sc.nextInt();
        //判断月份格式,月份不能小于1月,不能大于12月
        if(month < 1 || month > 12){
            System.out.println("月份输入错误");
            return;
        }
        System.out.println("请输入日期:");
        int day = sc.nextInt();
        //对日期进行判断,月份不能小于1天,并对闰年和平年的2月份的日期进行判断
        if(day < 1){
            System.out.println("日期输入错误");
            return;
        }
        //闰年不能大于29天
        if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
            if (day > leapYearDays[2]){
                System.out.println("日期输入错误");
                return;
            }
        }else{
            //平年2月不能大于28天
            if (day > commonYearDays[2]){
                System.out.println("日期输入错误");
                return;
            }
        }

        //定义一个变量,用来接收度过的总天数
        int days = 0;
        //将1990年距输入的年份的前一年的总天数进行相加
        for (int i = 1990; i <= year - 1 ; i++) {
            //闰年判断,闰年+29天
            if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
                days += leapYearDays[0];
            }else{
                //否则,平年+28天
                days += commonYearDays[0];
            }
        }
        //对输入的月份进行判断
        for (int i = 1; i < month; i++) {
            //对于大于2月的月份进行判断,闰年+29
            if (year % 4 == 0 && year % 100 != 0 ||year % 400 == 0) {
                days += leapYearDays[i];
            }else{
                //平年+28
                days += commonYearDays[i];
            }
        }
        //对于日期进行判断,大于2月的月份必须分开计算
        days += day;
        if(days % 5 <= 3){
            System.out.println("张三已经执行了" + days + "天了.\n" + year + "年" + month + "月" + day + "日" + "这一天张三还在打鱼,再等几天吧");
        }else {
            System.out.println("张三已经执行了" + days + "天了.\n" + year + "年" + month + "月" + day + "日" + "这一天张三在晒网,可以去找他玩去了");
        }

    }
}
